﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>Persistent - 语法 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="The Persistent function prevents the script from exiting automatically when its last thread completes, allowing it to stay running in an idle state." />
<meta name="ahk:equiv-v1" content="lib/_Persistent.htm" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
</head>
<body>

<h1>Persistent</h1>

<p>防止脚本在最后一个线程完成后自动退出, 允许它在空闲状态下运行.</p>
<pre class="Syntax"><span class="func">Persistent</span> <span class="optional">Persist</span></pre>

<h2 id="Parameters">参数</h2>
<dl>
  <dt>Persist</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#boolean">布尔值</a></p>
    <p>如果省略, 则默认为 true.</p>
    <p>如果为 <strong>true</strong>, 在所有线程退出后, 脚本将继续保持运行, 即使没有满足保持脚本运行的其他条件.</p>
    <p>如果为 <strong>false</strong>, 则恢复默认行为.</p>
  </dd>
</dl>

<h2 id="Return_Value">返回值</h2>
<p>类型: <a href="../Concepts.htm#boolean">整数(布尔值)</a></p>
<p>此函数返回先前的设置; 0(false) 或 1(true).</p>

<h2 id="Remarks">备注</h2>
<p>如果 Persistent 没有使用, 则默认设置为 0(false).</p>
<p>如果脚本是 <em>持续运行的</em>, 它将在<a href="../Scripts.htm#auto">启动</a>完成和所有其他<a href="../misc/Threads.htm">线程</a>退出后继续运行. 通常没有必要调用这个函数, 因为在用户希望脚本持续运行的大多数常见情况下脚本都是<a href="../Scripts.htm#persistent">自动持续运行的</a>, 比如响应<a href="../Hotkeys.htm">热键</a>, 执行<a href="SetTimer.htm">计时器</a>或者显示 <a href="Gui.htm">GUI</a>.</p>
<p>在某些情况下可能需要此函数(如果它打算在没有运行的线程或热键, 计时器, 等时保持运行) 包括:</p>
<ul>
  <li>使用 <a href="OnMessage.htm">OnMessage</a> 或 <a href="CallbackCreate.htm">CallbackCreate</a> 和 <a href="DllCall.htm">DllCall</a> 来响应事件的脚本, 因为这些函数不会使脚本持续运行.</li>
  <li>通过选择一个自定义托盘菜单项来执行的脚本.</li>
  <li><a href="ComObject.htm">创建</a>或<a href="ComObjActive.htm">检索</a> COM 对象并使用 <a href="ComObjConnect.htm">ComObjConnect</a> 来响应对象的事件的脚本.</li>
</ul>
<p>如果将此函数添加到现有脚本中, 则可能需要将部分或全部出现的 <a href="Exit.htm">Exit</a> 更改为 <a href="ExitApp.htm">ExitApp</a>. 这是因为 <a href="Exit.htm">Exit</a> 不会终止持续运行的脚本; 它仅终止<a href="../misc/Threads.htm">当前线程</a>.</p>

<h2 id="Related">相关</h2>
<p><a href="Exit.htm">Exit</a>, <a href="ExitApp.htm">ExitApp</a></p>

<h2 id="Examples">示例</h2>
<div class="ex" id="ExBasic">
<p><a class="ex_number" href="#ExBasic"></a> 防止脚本自动退出.</p>
<pre><em>; 这个脚本不会自动退出, 即使它没有任何事情要做.
; 但是, 你可以使用它的托盘图标在编辑器中打开脚本,
; 或启动 Window Spy 或帮助文件.</em>
Persistent</pre>
</div>

</body>
</html>